# -*- codeing = utf-8 -*-
# @Time : 2024/7/23 15:49
# @Author : 袁美玉
# @File : demo3_网易新闻采集.py
# @Software  ：PyCharm
"""
采用xpath的方式，进行解析和匹配内容
"""
import requests
from lxml import etree  # 转换数据
import csv

# 获取网页资源地址
url = 'https://c.m.163.com/news/hot/newsList'
# 发送请求
headers = {
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36'
}
response = requests.get(url, headers=headers)
# print(response.text)  # 返回的是含有各种标签的静态html

data = etree.HTML(response.text)  # etree.HTML()可以用来解析字符串格式的HTML文档对象，将传进去的字符串转变成_Element对象。
                                 # 作为_Element对象，可以方便的使用getparent()、remove()、xpath()等方法

title_list = data.xpath('//div[@class="title"]/a/text()')
# print(title_list)
# 上述代码含义是获取属性class为title的div标签，其下面的a标签的文本内容
href_list = data.xpath('//div[@class = "title"]/a/@href')
# print(href_list)

# 上述的两个代码已经把标题title，链接拿到了，现在就是需要把数据存起来
# 将数据保存到CSV格式的文件
# 测试git
with open('demo3网易新闻数据.csv','a+') as f:  # a+打开一个文件用于读写，如果文件存在，文件指针会将放在
    # 文件的末尾，也就是说，新的内容将会被写入到已有内容之后，如果文件不存在，创建新文件进行写入。
    for title, href in zip(title_list, href_list):  # for in zip()并行遍历
        f.write("{},{}\n".format(title,href))
